/*
  1 页面被打开的时候onShow
    0 onShow不同于onLoad 无法在形参上接收 options参数
    0.5 判断缓存中有没有token
      1 没有直接跳转到授权页面
      2有直接往下进行
    1获取url上的参数type
    2根据type 去发送请求获取订单数据
    3渲染页面
  2点击不同的标题重新发送请求来获取和渲染数据
*/

import { request } from "../../request/index.js";
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({

  /**
   * 页面的初始数据
   */
  data: {
    orders:[],
    tabs: [{
        id: 0,
        value: "全部",
        isActive: true
      },
      {
        id: 1,
        value: "待付款",
        isActive: false
      },
      {
        id: 2,
        value: "待付款",
        isActive: false
      },
      {
        id: 3,
        value: "退款/退货",
        isActive: false
      }
    ]
  },
  onShow(options){
    // console.log(options);
    // 1 判断缓存中有没有token
    const token = wx.getStorageSync("token");
    // 2 判断
    if (!token) {
      wx.navigateTo({
        url: '/pages/auth/auth'
      });
      return;
    }
    // 1 获取当前的小程序的页面栈-数组 长度最大是10个页面
    var pages =  getCurrentPages();
    // 2 数组中 索引最大的页面就是当前页面
    let currentPage = pages[pages.length-1];
    // 3 获取url上的type参数
    const {type} = currentPage.options;
    // 4 激活选中页面标题 当 type=1 index=0
    this.changeTitleByIndex(type-1);
    this.getOrders(type);    
  },
  // 获取订单列表的方法
  async getOrders(type){
    const res = await request({url:"/my/orders/all",data:{type}})
    this.setData({
      orders:res.orders.map(v => ({...v,create_time_cn:(new Date(v.create_time*1000).toLocaleString())}))
    })
  },
  changeTitleByIndex(index){
     // 2 修改源数组
    let {
      tabs
    } = this.data;
    tabs.forEach((v, i) => i === index ? v.isActive = true : v.isActive = false);
    // 3 赋值到data中
    this.setData({
      tabs
    })
  },
  // 标题点击事件 从子组件传递过来
  handletabsItemTap(e) {
    // 1 获取被点击的标题索引
    const {
      index
    } = e.detail;
    this.changeTitleByIndex(index);
    // 2 重新发送请求 type=1 index=0
    this.getOrders(index+1);
  }
})